package com.lsh.payment.core.service.refund;

import com.lsh.payment.api.model.refund.RefundQueryCheckRequest;
import com.lsh.payment.core.model.refund.PayRefund;

import java.util.List;
import java.util.Map;

/**
 * Project Name: lsh-payment
 * Created by peter on 17/6/28.
 * 北京链商电子商务有限公司
 * Package
 * desc:
 */
public interface PayRefundOrderService {

    /**
     * 添加退款记录
     * @param payRefund   退款记录信息
     * @return            成功标记
     */
    int addRefund(PayRefund payRefund);

    /**
     * 查询退款记录信息
     * @param refundNo   退款流水号
     * @return           退款记录信息
     */
    PayRefund selectRefundByPayRefundNo(String refundNo);

    /**
     * 修改退款记录
     * @param payRefund   退款记录信息
     * @return            成功标识
     */
    int updateRefundByPayRefundNo(PayRefund payRefund);

    /**
     * 查询退款记录
     * @param refundTradeId   第三方唯一标识
     * @return                退款记录信息
     */
    PayRefund selectRefundByRefundTradeId(String refundTradeId);

    /**
     * 查询退款记录信息
     * @param payPaymentNo    支付流水号
     * @return                返回列表信息
     */
    List<PayRefund> selectRefundByPayPaymentNo(String payPaymentNo);

    /**
     * 修改退款记录信息
     * @param payRefund    支付流水号
     * @return                返回列表信息
     */
    int updateRefundStatus(PayRefund payRefund);


    List<Map<String,Object>> queryCheck(RefundQueryCheckRequest refundQueryCheckRequest);

}
